package com.example.micro_property_springboot.pojo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import jakarta.validation.constraints.NotNull;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 资产维修表
 */

@Data
@TableName("asset_repair")
public class AssetRepair {
    // 资产维修id
    @TableId(type = IdType.AUTO)
    @NotNull(message = "资产维修id不能为空")
    private Long repairId; // 资产维修id

    //维修单号
    @TableField("repair_no")
    @NotNull(message = "维修单号不能为空")
    private String repairNo; // 维修单号

    @TableField("asset_id")
    @NotNull(message = "资产id不能为空")
    private Long assetId; // 资产id

    //报修人id
    @TableField("repair_user_id")
    @NotNull(message = "报修人id不能为空")
    private Long repairUserId; // 报修人ID

    //故障描述
    @TableField("fault_desc")
    @NotNull(message = "故障描述不能为空")
    private String faultDesc; // 故障描述

    //优先级
    @TableField("priority")
    @NotNull(message = "优先级不能为空")
    private String priority; // 优先级

    //维修厂商
    @TableField("repair_company")
    @NotNull(message = "维修厂商不能为空")
    private String repairCompany; // 维修厂商

    //维修费用
    @TableField("repair_cost")
    @NotNull(message = "维修费用不能为空")
    private BigDecimal repairCost; // 维修费用

    //维修日期
    @TableField("repair_date")
    @NotNull(message = "维修日期不能为空")
    private LocalDateTime repairDate; // 维修日期

    //故障原因
    @TableField("fault_reason")
    @NotNull(message = "故障原因不能为空")
    private String faultReason; // 故障原因

    //维修结果
    @TableField("result")
    @NotNull(message = "维修结果不能为空")
    private String result; // 维修结果

    //处理人id
    @TableField("handler_id")
    @NotNull(message = "处理人id不能为空")
    private Long handlerId; // 处理人ID

    @TableField("create_time")
    @NotNull(message = "创建时间不能为空")
    private LocalDateTime createTime; // 创建时间

    @TableField("update_time")
    @NotNull(message = "更新时间不能为空")
    private LocalDateTime updateTime; // 更新时间
}
